--- title: "01-Http请求 以及 Springboot注解" created: 2025-12-02 tags: - 项目 aliases: - Http请求 以及 Springboot注解 --- # Http请求 以及 Springboot注解 ## Http Http中有很多请求方法 这些请求方法主要用于客户端与服务器之间的通信 前后端交互大多通过这些请求来完成 ### 常用的请求方法 1. **GET**: - **用途**: 获取数据或资源。 - **特点**: 通过URL传递参数,主要用于数据的读取而非修改。GET请求是幂等的(多次请求不会影响服务器数据),并且通常是安全的。 - **应用场景**: 请求网页内容、查询用户信息、获取商品列表等。 - **示例**: 向服务器请求用户ID为123的信息: ``` GET /users/123 HTTP/1.1 ``` 2. **POST**: - **用途**: 提交数据或创建资源。 - **特点**: 数据放在请求体中,而不是URL中,适合传输较大的数据或敏感信息。POST请求不是幂等的(多次请求可能会产生不同的结果,如重复创建)。 - **应用场景**: 提交表单数据、上传文件、创建新用户等。 - **示例**: 向服务器提交一个新用户的信息: ``` POST /users HTTP/1.1 Content-Type: application/json { "name": "Alice", "email": "alice@example.com" } ``` 3. **PUT**: - **用途**: 更新整个资源或创建资源(如果资源不存在)。 - **特点**: PUT通常用于更新指定的资源。它是幂等的,多次执行同样的PUT请求不会产生副作用。 - **应用场景**: 更新用户信息、修改商品详情等。 - **示例**: 更新用户ID为123的用户信息: ``` PUT /users/123 HTTP/1.1 Content-Type: application/json { "name": "Bob", "email": "bob@example.com" } ``` 4. **PATCH**: - **用途**: 部分更新资源。 - **特点**: 只修改资源的部分内容,而不是替换整个资源。它也是幂等的。 - **应用场景**: 修改用户的部分信息,如仅更新邮箱。 - **示例**: 更新用户ID为123的邮箱: ``` PATCH /users/123 HTTP/1.1 Content-Type: application/json { "email": "newemail@example.com" } ``` 5. **DELETE**: - **用途**: 删除资源。 - **特点**: 向服务器发送删除指定资源的请求,它是幂等的。 - **应用场景**: 删除用户、删除订单等。 - **示例**: 删除用户ID为123的用户: ``` DELETE /users/123 HTTP/1.1 ``` ### 不常用的请求方法 1. **HEAD**: - 类似于GET请求,但是不返回实际内容,只返回响应头。通常用于检查资源的状态或元数据。 - 应用场景:检查文件是否存在、获取资源的大小等。 2. **OPTIONS**: - 用于获取服务器支持的请求方法。可以用来检查跨域资源共享(CORS)设置。 - 应用场景:检查服务器的能力和支持的HTTP方法。 3. **TRACE**: - 诊断目的,用于回显请求内容,帮助调试连接和代理服务器的问题。 - 应用场景:很少直接使用,通常出于安全考虑会禁用。 4. **CONNECT**: - 建立隧道连接,用于支持SSL加密的HTTPS连接。 - 应用场景:主要用于代理服务器。 ### 总结 前后端的交互主要依赖于这些请求方法,特别是GET、POST、PUT、PATCH、DELETE,它们构成了大部分Web API的基础操作。你可以根据需求选择不同的请求方法,按照RESTful的风格实现资源的增删改查。 ## Spring Boot 在Spring Boot中,为了方便开发,提供了专门对应不同HTTP请求的注解,这些注解简化了代码编写,并提高了代码的可读性和维护性。 以下是Spring Boot中常用的注解: ### **@GetMapping**: - 对应HTTP的GET请求。通常用于获取数据或资源。 - 用法示例: ```java @GetMapping("/users") public List getAllUsers() { // 处理获取所有用户的逻辑 return userService.findAll(); } ``` ### **@PostMapping**: - 对应HTTP的POST请求。用于提交数据或创建资源。 - 用法示例: ```java @PostMapping("/users") public User createUser(@RequestBody User user) { // 处理创建用户的逻辑 return userService.save(user); } ``` ### **@PutMapping**: - 对应HTTP的PUT请求。用于更新整个资源或创建资源。 - 用法示例: ```java @PutMapping("/users/{id}") public User updateUser(@PathVariable Long id, @RequestBody User user) { // 处理更新用户的逻辑 return userService.update(id, user); } ``` ### **@PatchMapping**: - 对应HTTP的PATCH请求。用于部分更新资源。 - 用法示例: ```java @PatchMapping("/users/{id}") public User updateUserPartially(@PathVariable Long id, @RequestBody Map updates) { // 处理部分更新用户的逻辑 return userService.partialUpdate(id, updates); } ``` ### **@DeleteMapping**: - 对应HTTP的DELETE请求。用于删除资源。 - 用法示例: ```java @DeleteMapping("/users/{id}") public void deleteUser(@PathVariable Long id) { // 处理删除用户的逻辑 userService.delete(id); } ``` 这些注解可以让Spring Boot开发者轻松地根据HTTP请求类型映射到相应的Java方法上,从而实现RESTful风格的API接口设计。在旧版本中,通常会使用@RequestMapping注解并指定method参数来处理不同的HTTP方法,而新版本的Spring Boot则提供了更细粒度的注解,让代码更加简洁明了。 --- **项目分区导航**: [[00-业务具体实现|业务具体实现]] ⬅️ | 01-Http请求 以及 Springboot注解 | ➡️ [[02-Postman|Postman]]